/**
 * \file CGestionFavorisFrm.h
 * \author Corentin Le Bail
 * \date 2009-2012
 * \brief Fichier de déclaration de la class CGestionFavorisFrm
 */
//------------------------------------------------------------------------------
#ifndef __CGESTIONFAVORISFRM_H__
#define __CGESTIONFAVORISFRM_H__
//------------------------------------------------------------------------------
#include <QDialog>
#include <QTreeWidgetItem>
#include <QDropEvent>
#include "ui_CGestionFavorisFrm.h"
//------------------------------------------------------------------------------
/**
 * \class CGestionFavorisFrm CGestionFavorisFrm.h "CGestionFavorisFrm.h"
 * \brief Classe de la fenêtre de base des favoris.
 */
class CGestionFavorisFrm : public QDialog, protected Ui::GestionFavorisFrm
{
	Q_OBJECT
	public:
		/**
		 * \fn CGestionFavorisFrm(QWidget *parent = 0)
		 * \brief Constructeur
		 * \param[in] parent Référence vers un objet parent
		 */
		CGestionFavorisFrm(QWidget *parent = 0);
		/**
		 * \fn ~CGestionFavorisFrm(void)
		 * \brief Desctructeur
		 */
		virtual ~CGestionFavorisFrm(void) {}
	protected:
		/**
		 * \fn void loadFavoris(QTreeWidgetItem * item, int * parent=0)
		 * \brief Charge les favoris
		 * \param[in] item Objet dans lequel on doit charger les favoris
		 * \param[in] parent Identifiant du parent des favoris à charger
		 */
		virtual void loadFavoris(QTreeWidgetItem * item, int * parent=0) = 0;
		/**
		 * \fn void dropFavoris(QTreeWidgetItem * item)
		 * \brief Suprime tous les enfant d'un noeud
		 * \param[in] item Référence du noeud
		 */
		void dropFavoris(QTreeWidgetItem * item);
		/**
		 * \fn void createRacine(int id)
		 * \brief Créé la racine de l'arbre avec le bon id
		 * \param[in] id Identifiant SQL de la racine de l'arbre
		 * \return La référence de l'objet racine
		 */
		QTreeWidgetItem * createRacine(int id);
	protected slots:
		/**
		 * \fn void on_cmdSupprimer_clicked(void)
		 * \brief Lorsque qu'on supprime un favoris
		 */
		virtual void on_cmdSupprimer_clicked(void) = 0;
		/**
		 * \fn void on_cmdAjoutDossier_clicked(void)
		 * \brief Lorsque qu'on ajoute un dossier de favoris
		 */
		virtual void on_cmdAjoutDossier_clicked(void) = 0;
		/**
		 * \fn void on_treeFavoris_itemDroped(int sourceId, int destId)
		 * \brief Lorsque qu'un élément est déposé sur un noeud
		 */
		virtual void on_treeFavoris_itemDroped(int sourceId, int destId) = 0;
};
//------------------------------------------------------------------------------
#endif //__CGESTIONFAVORISFRM_H__
//------------------------------------------------------------------------------
